//#include <iostream>
//#include <algorithm>
//#include <vector>
//#include <cmath>
//#include <functional>
//#include <climits>
//#include <cstring>
//#include <string>
//#include <sstream>
//#include <unordered_map>
//#include <unordered_set>
//#include <map>
//#include <set>
//#include <queue>
//#include <stack>
//#include <deque>
//
//#define quickio ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//#define endl "\n"
//
//using namespace std;
//typedef long long ll;
//
//int n, x;
//
//void MyQsort(int begin, int end, int* arr)
//{
//	if (begin >= end)
//		return;
//	int l = begin, r = end, base = arr[begin];
//	while (l < r)
//	{
//		while (l < r && arr[r] > base)
//			r--;
//
//		if (l < r)
//			swap(arr[r], arr[l++]);
//
//		while (l < r && arr[l] <= base)
//			l++;
//
//		if (l < r)
//			swap(arr[l], arr[r--]);
//	}
//
//	arr[l] = base;
//
//	for (int i = 0; i < n; i++)
//	{
//		cout << arr[i];
//		if (i < n - 1)
//			cout << ' ';
//	}
//
//	cout << endl;
//
//	MyQsort(begin, l - 1, arr);
//	MyQsort(l + 1, end, arr);
//}
//
//void solve()
//{
//	n = 0;
//	int arr[30] = { 0 };
//	string line;
//	getline(cin, line);
//	stringstream ss(line);
//	n = 0;
//	while (ss >> x)
//		arr[n++] = x;
//
//	MyQsort(0, n - 1, arr);
//}
//
//int main()
//{
//	solve();
//	return 0;
//}